<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            width: 300px;
            height: 300px;
            background-color: skyblue;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        p {
            width: 200px;
            height: 200px;
            background-color: pink;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        span {
            width: 100px;
            height: 100px;
            background-color: orange;
        }
    </style>
</head>

<body>
    <div>
        <p>
            <span></span>
        </p>
    </div>

    <script src="./jquery/jquery-3.6.0.min.js"></script>

    <!-- 
        ·绑定div的点击事件
        ·绑定div的点击事件并携带数据
        ·使用事件委托为div下的span绑定点击事件
        ·使用事件委托为div下的span绑定点击事件并携带数据
        -->
    <script>
        // document.querySelector("div").onclick = function(e){console.log(e)}
        // // 绑定div的点击事件 addEventListener
        $("div").on("click", function (e) {
            console.log("listener1",e);
        })

        $("div").on("click", function (e) {
            console.log("listener2",e);
        })

        /* 为p元素绑定点击事件 */
        // 将p的事件委托给div
        function handler (e) {
            console.log("u clicked a p",e);
        }
        $("div").on("click", "p", handler);

        // 移除事件
        $("div").off("click", "p", handler); 

        // 使用事件委托为div下的span绑定点击事件并携带数据
        // $("div").on("click", "span", { time: new Date() }, function (e) {
        //     // 打印事件及其携带的数据
        //     console.log("u clicked a span",e, e.data);
        // });

        // 绑定div的点击事件并携带数据
        // 使用事件委托为div下的span绑定点击事件
        // $("div").on("click", "span", function (e) {
        //     console.log("u clicked a span",e);
        //     e.stopPropagation()
        // });

    </script>
</body>

</html>